Simplify backend flag parsing.
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Thu, 15 Sep 2005 19:46:14 +0000 (19:46 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Thu, 15 Sep 2005 19:46:14 +0000 (19:46 +0000)
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
tools/python/xen/xend/XendDomainInfo.py
tools/python/xen/xend/image.py

index 584bc205b0f253f6a1d064e1dc97ecd395fd8d30..4f645576f16055934734107c37ea7a94d46fb6cd 100644 (file)
@@ -88,6 +88,15 @@ STATE_VM_OK         = "ok"
 STATE_VM_TERMINATED = "terminated"
 STATE_VM_SUSPENDED  = "suspended"
 
+"""Flag for a block device backend domain."""
+SIF_BLK_BE_DOMAIN = (1<<4)
+
+"""Flag for a net device backend domain."""
+SIF_NET_BE_DOMAIN = (1<<5)
+
+"""Flag for a TPM device backend domain."""
+SIF_TPM_BE_DOMAIN = (1<<7)
+
 
 def domain_exists(name):
     # See comment in XendDomain constructor.
@@ -243,10 +252,8 @@ class XendDomainInfo:
         self.controllers = {}
         
         self.info = None
-        self.blkif_backend = False
-        self.netif_backend = False
+        self.backend_flags = 0
         self.netif_idx = 0
-        self.tpmif_backend = False
         
         #todo: state: running, suspended
         self.state = STATE_VM_OK
@@ -1014,13 +1021,13 @@ class XendDomainInfo:
             v = sxp.child0(c)
             name = sxp.name(v)
             if name == 'blkif':
-                self.blkif_backend = True
+                self.backend_flags |= SIF_BLK_BE_DOMAIN
             elif name == 'netif':
-                self.netif_backend = True
+                self.backend_flags |= SIF_NET_BE_DOMAIN
             elif name == 'usbif':
-                self.usbif_backend = True
+                pass
             elif name == 'tpmif':
-                self.tpmif_backend = True
+                self.backend_flags |= SIF_TPM_BE_DOMAIN
             else:
                 raise VmError('invalid backend type:' + str(name))
 
index 216973354bb19e05abcb66bf680184e892d80764..36b3db236bb2a1c007a0df773a79bd1ee4bdb247 100644 (file)
@@ -27,15 +27,6 @@ from xen.xend.xenstore.xstransact import xstransact
 
 from xen.xend.server import channel
 
-"""Flag for a block device backend domain."""
-SIF_BLK_BE_DOMAIN = (1<<4)
-
-"""Flag for a net device backend domain."""
-SIF_NET_BE_DOMAIN = (1<<5)
-
-"""Flag for a TPM device backend domain."""
-SIF_TPM_BE_DOMAIN = (1<<7)
-
 MAX_GUEST_CMDLINE = 1024
 
 class ImageHandler:
@@ -192,10 +183,7 @@ class ImageHandler:
             return
 
         # Set params and call buildDomain().
-        self.flags = 0
-        if self.vm.netif_backend: self.flags |= SIF_NET_BE_DOMAIN
-        if self.vm.blkif_backend: self.flags |= SIF_BLK_BE_DOMAIN
-        if self.vm.tpmif_backend: self.flags |= SIF_TPM_BE_DOMAIN
+        self.flags = self.vm.backend_flags
 
         if not os.path.isfile(self.kernel):
             raise VmError('Kernel image does not exist: %s' % self.kernel)